% what is the problem solved?
% how did we solve it?
% what were the results?
% what are the main findings/conclusions?

Ultrasound scanning is frequently used in medical practice because it is a non-invasive, safe and low-cost solution (\textit{vs.}\ CT or MR). However, conventional ultrasound probes only provide 2D scans. 3D ultrasound reconstruction builds 2D scans into 3D volumes of the patient's internals. Since these volumes can be used for acquiring out-of-angle views, 3D rendering of the anatomy, and for image guided surgery, they are rapidly expanding the possible uses of ultrasound. However, the 3D reconstruction process is computationally demanding and includes processing millions of picture and volume elements. This process can currently take minutes or even hours on conventional systems. 

It is very desirable to reconstruct ultrasound images in \emph{real-time} to guide surgeons doing surgery. In this thesis, we manage to achieve this by utilizing the parallel processing power of GPUs with hundreds of computing cores. Our novel optimized methods take advantage of this power in order to perform entire volume reconstructions in only \emph{fractions of a second}. Several optimization techniques have been developed, including only processing the relevant parts of the input. Novel methods for real-time incremental reconstruction producing high-quality results based on advanced interpolation techniques, are also presented. 

Using our novel pixel-based and voxel-based methods, we are able to generate a volume of 67 million voxels in on 0.9 and 0.6 seconds, respectively. These results are based on the new NVIDIA Fermi GPUs, OpenCL and 434 tracked ultrasound scans. For high-quality incremental reconstruction, real-time processing times are obtained for methods based on distance weighted orthogonal projections and on the probe trajectory (PT). Our GPU implementations give a performance speedup of 14 for pixel-based methods, an impressive 51 for voxel-based methods, and speedup of 6-8 for the incremental methods, compared with single-threaded CPU implementations. The cubic interpolation of the PT method is shown to be superior to the others and preserves the most details. As for possible future work, we point out techniques for handling memory constraints, complex probe movement and the device-to-host transfer bottleneck.